package 统一响应封装;

import java.io.Serializable;
import java.util.List;

/**
 * 统一API响应结果封装
 * @param <T> 数据类型
 */
public class Result<T>{
    private int code;    // 状态码
    private String msg;  // 消息
    private T data;      // 数据内容
    private long timestamp = System.currentTimeMillis(); // 自动生成时间戳

    // 私有构造器
    private Result() {}
    // 成功响应（带数据）
    public static <T> Result<T> success(T data) {
        Result<T> result = new Result<T>();
        result.code = 200;
        result.msg = "操作成功";
        result.data = data;
        return result;
    }
    // 业务失败响应（自定义状态码和消息）
    public static <T> Result<T> error(int code, String message) {
        Result<T> result = new Result<T>();
        result.code = code;
        result.msg = message;
        return result;
    }
    // Getters
    public int getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }

    public T getData() {
        return data;
    }

    public long getTimestamp() {
        return timestamp;
    }
}